<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    /* 
    1）封装一个函数实现以下格式字符串的转换
比如：howAreYou   ->how-are-you
        how-are-you-> howAreYou
2）封装一个函数实现将一个url地址的参数转换为一个对象的形式  比如
http://172.16.254.254:8081/?userip=172.16.42.19&usermac=58696ce014e7
参数对象  {userip: “172.16.42.19”, usermac :” 58696ce014e7”} */


    // 题1
    // var str='howAreYou'    //定义原字符串
    // function fun(str1){    //封装函数并传参
    //     let arr=str1.split('')    //定义变量接收分割成数组后的字符串

    //     let reg=/[A-Z]/     //定义正则表达式  
    //     for(var i=0;i<arr.length;i++){   //遍历数组
    //         if(reg.test(arr[i])){      //判断   校验正则   数组中是否有大写字母  A到Z之间的字符
    //             arr[i]='-'+arr[i].toLowerCase()    //满足判断条件   改变数组索引对应的字符并且前面拼接'-'
    //         }
    //     }
    //      return arr.join('')    //返回这个数组并且转换为字符串
    // }
    // console.log(fun(str))    //控制台输出



    // 题2
    var str = 'http://172.16.254.254:8081/?userip=172.16.42.19&usermac=58696ce014e7'   //定义原字符串
    function fun(str1) {     //函数封装  传参
        let arr = str1.split('?')[1].split('&')     //定义变量接收  分割成数组后的字符串  '?'  '&'

        let arr1 = arr.map(item => item.replace('=', ':'))    //定义变量接收  遍历后替换符号的数组

        let arr2 = arr1.map(item => item.split(':'))    //定义变量接收  遍历后替换符号的数组

        let obj = {}     //定义对象

        arr2.forEach(item => {      //遍历替换符号后的新数组
            Object.defineProperty(obj, item[0], {      //通过Object.defineProperty将数组以对象形式转换
                value: item[1]
            })
        })

        return obj   //返回对象
    }
    console.log(fun(str))   //控制台输出

</script>